﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormProject.Depo
{
    public partial class SubeUrunFrm : Form
    {
        public SubeUrunFrm()
        {
            InitializeComponent();
        }
        UrunIslemler.UrundetayIslemler UD = new UrunIslemler.UrundetayIslemler();
        UrunSubeIslemler.SubeUrundetayIslemler SUDI = new UrunSubeIslemler.SubeUrundetayIslemler();
        UrunSubeIslemler.SubeUrunTut SubeYeniUrun = new UrunSubeIslemler.SubeUrunTut();
        GenelIslemler GI = new GenelIslemler();
        bool updatemi = false;

        private void bt_kaydet_Click(object sender, EventArgs e)
        {
            updatemi = false;
            if (UrunId.Text.Trim().Length == 0 && SubeID.Text.Trim().Length == 0)
                return;

            if (bt_kaydet_SubeUrun_List(Convert.ToInt32(SubeID.SelectedValue), UrunId.Text.Trim()))
                 {
                     if (updatemi==true)
                     {
                         MessageBox.Show("Kayıt Güncellendi");
                         
                     }
                         else
                         this.Close();
                }
           
        }

        private bool bt_kaydet_SubeUrun_List(int SubeID_Text, string UrunId_text)
        {
            try
            {
                if (SUDI.Get_RecordSubeUrunCount(SubeID_Text, UrunId_text) > 0)
                {
                    SubeYeniUrun.SubeID = Convert.ToInt32(SubeID.SelectedValue);
                    SubeYeniUrun.UrunId = UrunId.Text;
                    SubeYeniUrun.SubeStokAdet = Convert.ToDecimal(SubeStokAdet.Text);
                    SubeYeniUrun.SubeSatisFiyati = Convert.ToDouble(SubeSatisFiyati.Text);
                    SubeYeniUrun.SubeKDV = Convert.ToDecimal(SubeKDV.Text);
                    SubeYeniUrun.SubeMaxIskontoOrani = Convert.ToDecimal(SubeMaxIskontoOrani.Text);
                    SubeYeniUrun.SubeIskontoOrani = Convert.ToDecimal(SubeIskontoOrani.Text);
                    SubeYeniUrun.SubeSatistaMı = SubeSatistaMı.Checked;
                    SubeYeniUrun.SubeSatisCikisTarihi = SubeSatisCikisTarihi.Text;
                    SubeYeniUrun.SubeSatisCikisSebebi = SubeSatisCikisSebebi.Text;
                    SUDI.SubeUrunEkle(SubeYeniUrun);
                    SUDI.SubeUrunKayitGuncelle(SubeYeniUrun);
                    updatemi = true;
                  
                }
                SubeYeniUrun.SubeID = Convert.ToInt32(SubeID.SelectedValue);
                SubeYeniUrun.UrunId = UrunId.Text;
                SubeYeniUrun.SubeStokAdet = Convert.ToDecimal(SubeStokAdet.Text);
                SubeYeniUrun.SubeSatisFiyati = Convert.ToDouble(SubeSatisFiyati.Text);
                SubeYeniUrun.SubeKDV = Convert.ToDecimal(SubeKDV.Text);
                SubeYeniUrun.SubeMaxIskontoOrani = Convert.ToDecimal(SubeMaxIskontoOrani.Text);
                SubeYeniUrun.SubeIskontoOrani = Convert.ToDecimal(SubeIskontoOrani.Text);
                SubeYeniUrun.SubeSatistaMı = SubeSatistaMı.Checked;
                SubeYeniUrun.SubeSatisCikisTarihi = SubeSatisCikisTarihi.Text;
                SubeYeniUrun.SubeSatisCikisSebebi = SubeSatisCikisSebebi.Text;
                SUDI.SubeUrunEkle(SubeYeniUrun);
                SUDI.SubeUrunVeriTabaninaKayit(SubeYeniUrun);
            }
            catch
            {
                return false;
            }

            return true;

        }

        private void SubeStokAdet_KeyPress(object sender, KeyPressEventArgs e)
           {
            if (char.IsDigit(e.KeyChar) == false && e.KeyChar != (char)08 && e.KeyChar != '.' && e.KeyChar != ',' && e.KeyChar != (char)127 && e.KeyChar != (char)44)
            {
                e.Handled = true;

            }
        }

        private void bt_iptal_Click(object sender, EventArgs e)
        {
            if (UrunId.Text.Trim().Length == 0)
                return;
            if (bt_SubeUrun_delete( Convert.ToInt32(SubeID.Text),UrunId.Text.Trim()))
                this.Close();
        }
        private bool bt_SubeUrun_delete(int SubeID_text,string UrunId_text)
        {
            try
            {

                SUDI.SubeUrundelete(SubeID_text,UrunId_text);
            }
            catch
            {
                return false;
            }

            return true;
        }

        private void SubeUrunFrm_Load(object sender, EventArgs e)
        {
            SubeID.DataSource = GI.Subeler();
            SubeID.DisplayMember = "SubeAdi";
            SubeID.ValueMember = "SubeID";
        }


        DBBaglantiDataContext db = new DBBaglantiDataContext();

        public void SubeUrunIdGetir(int SubeId, string _UrunId)
        {
            try
            {
                var SubeUrunGetir = (from x in db.SubeUrunlers join y in db.MErkezUrunlers on x.UrunId equals _UrunId join z in db.Kategorilers on y.KatID equals z.KatID where x.SubeID == SubeId select new { x.SubeID, x.UrunId, x.SubeStokAdet, x.SubeSatisFiyati, x.SubeKDV, x.SubeMaxIskontoOrani, x.SubeIskontoOrani, x.SubeSatistaMı, x.SubeSatisCikisTarihi, x.SubeSatisCikisSebebi, y.UrunADi, z.KatagoriAdi }).FirstOrDefault();

                if (SubeUrunGetir != null)
                {
                    SubeID.SelectedValue = SubeUrunGetir.SubeID;
                    UrunId.Text = SubeUrunGetir.UrunId;
                    SubeStokAdet.Text = SubeUrunGetir.SubeStokAdet.ToString();
                    SubeSatisFiyati.Text = SubeUrunGetir.SubeSatisFiyati.ToString();
                    SubeKDV.Text = SubeUrunGetir.SubeKDV.ToString();
                    SubeMaxIskontoOrani.Text = SubeUrunGetir.SubeMaxIskontoOrani.ToString();
                    SubeIskontoOrani.Text = SubeUrunGetir.SubeIskontoOrani.ToString();
                    SubeSatistaMı.Checked = SubeUrunGetir.SubeSatistaMı;
                    SubeSatisCikisTarihi.Value = SubeUrunGetir.SubeSatisCikisTarihi;
                    SubeSatisCikisSebebi.Text = SubeUrunGetir.SubeSatisCikisSebebi;
                    UrunADi.Text = SubeUrunGetir.UrunADi;
                    KatID.Text = SubeUrunGetir.KatagoriAdi;
                }
            }
            catch 
            {
                
             
            }
           
        }


        private void UrunId_Leave(object sender, EventArgs e)
        {

            try
            {
                SubeUrunIdGetir(Convert.ToInt32(SubeID.SelectedValue),UrunId.Text);
            }
            catch
            {
                
                
            }
            
            
            
            //try
            //{
            //    DataTable SubeUrunler = SUDI.SubeUrunler(Convert.ToInt32(SubeID.SelectedValue), UrunId.Text);
            //    foreach (DataRow item in SubeUrunler.Rows)
            //    {
            //        SubeYeniUrun.SubeID = Convert.ToInt32(item[0]);
            //        SubeYeniUrun.SubeAdi = item[12].ToString();
            //        SubeYeniUrun.UrunId = item[1].ToString();
            //        SubeYeniUrun.UrunADİ = item[11].ToString();
            //        SubeYeniUrun.KatAdi = item[10].ToString();
            //        SubeYeniUrun.SubeStokAdet = Convert.ToDecimal(item[2]);
            //        SubeYeniUrun.SubeSatisFiyati = Convert.ToDouble(item[3]);
            //        SubeYeniUrun.SubeKDV = Convert.ToDecimal(item[4]);
            //        SubeYeniUrun.SubeMaxIskontoOrani = Convert.ToDecimal(item[5]);
            //        SubeYeniUrun.SubeIskontoOrani = Convert.ToDecimal(item[6]);
            //        SubeYeniUrun.SubeSatistaMı = Convert.ToBoolean(item[7]);
            //        SubeYeniUrun.SubeSatisCikisTarihi = item[8].ToString();
            //        SubeYeniUrun.SubeSatisCikisSebebi = item[9].ToString();
            //        SUDI.SubeUrunEkle(SubeYeniUrun);
            //    }

            //    List<UrunSubeIslemler.SubeUrunTut> IdyeGore = SUDI.SubeUrunIdyeGore(Convert.ToInt32(SubeID.SelectedValue), UrunId.Text);

            //    if (IdyeGore.Count == 0)
            //    {
            //        DataTable URUNLER = UD.Urunler(UrunId.Text);
            //        foreach (DataRow item in URUNLER.Rows)
            //        {
            //            SUDI.SubeUrunTutClear(SubeYeniUrun);
            //            SubeYeniUrun.SubeID = Convert.ToInt32(SubeID.SelectedValue);
            //            SubeYeniUrun.UrunId = item[0].ToString();
            //            SubeYeniUrun.UrunADİ = item[1].ToString();
            //            SubeYeniUrun.KatAdi = item[19].ToString();
            //            SUDI.SubeUrunEkle(SubeYeniUrun);
            //             List<UrunSubeIslemler.SubeUrunTut> YeniIdyeGore = SUDI.SubeUrunIdyeGore(Convert.ToInt32(SubeID.SelectedValue), UrunId.Text);
            //             foreach (UrunSubeIslemler.SubeUrunTut Urunitem in YeniIdyeGore)
            //            {
            //                UrunId.Text = Urunitem.UrunId;
            //                UrunADi.Text = Urunitem.UrunADİ;
            //                KatID.Text = Urunitem.KatAdi;
            //                var SubeStokAdetGetir = (from x in db.SubeUrunlers
            //                                     where x.UrunId == UrunId.Text
            //                                     select x.SubeStokAdet).FirstOrDefault();
            //                SubeStokAdet.Text = SubeStokAdetGetir.ToString();

            //            }

            //        }
            //    }

            //    foreach (UrunSubeIslemler.SubeUrunTut  item in IdyeGore)
            //    {
            //        SubeID.Text = item.SubeAdi;
            //        UrunId.Text = item.UrunId;
            //        UrunADi.Text = item.UrunADİ;
            //        KatID.Text = item.KatAdi;
            //        SubeStokAdet.Text = item.SubeStokAdet.ToString();
            //        SubeSatisFiyati.Text =item.SubeSatisFiyati.ToString();
            //        SubeKDV.Text = item.SubeKDV.ToString();
            //        SubeSatistaMı.Checked = Convert.ToBoolean(item.SubeSatistaMı);
            //        SubeMaxIskontoOrani.Text = item.SubeMaxIskontoOrani.ToString();
            //        SubeIskontoOrani.Text = item.SubeIskontoOrani.ToString();
            //        SubeSatisCikisTarihi.Text = item.SubeSatisCikisTarihi.ToString();
            //        SubeSatisCikisSebebi.Text = item.SubeSatisCikisSebebi.ToString();
            //        SUDI.SubeUrunTutClear(SubeYeniUrun);
                    
            //    }
            //}

            //catch
            //{
 
            //}
        }

        private void bt_sec_Click(object sender, EventArgs e)
        {
            UrunListesiFrm Urunlistesi = new Depo.UrunListesiFrm();
            Urunlistesi.AcanForm = this;
            Urunlistesi.Show();
        }
    }

}
